return {
  'nvim-telescope/telescope.nvim',
  dependencies = { 'nvim-lua/plenary.nvim' },
  config = function()
    local builtin = require('telescope.builtin')
    vim.keymap.set('n', '<leader>ff', builtin.find_files , { desc = 'Telescope find files' })
    vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live grep' })
    vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = 'Telescope buffers' })
    vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' })
    vim.keymap.set('n', '<leader>fr', builtin.registers, { desc = 'Telescope registers' })
    vim.keymap.set('n', '<leader>fk', builtin.keymaps, { desc = 'Telescope keymaps' })

    require('telescope').setup {
      defaults = {
        -- vertical = true,
        results_open_by_default = false,
        path_display = { "smart_truncate" },  -- 路径展示方式，可以是'truncate'或'smart_truncate'
        layout_config = {
          horizontal = {
            width = 0.75,               -- 横向宽度比例
            height = 0.85               -- 横向高度比例
          }
        },
      },
      pickers = {
        find_files = {
          -- no_ignore = true,
          find_command = {
            "rg",
            "--files",
            "--color", "never",
            "--hidden",
            "--no-ignore-vcs",
            "--glob", "!.git"
          }
        },
        live_grep = {
          previewer = false,
          additional_args = { "--hidden", "--glob", "!.git" }
        },
        grep_string = {
          additional_args = { "--hidden", "--glob", "!.git" }
        }
      },
      extensions = {
        fzf = {
          fuzzy = true,                    -- false will only do exact matching
          override_generic_sorter = true,  -- override the generic sorter
          override_file_sorter = true,     -- override the file sorter
          case_mode = "smart_case",        -- or "ignore_case" or "respect_case"
        }
      }
    }
  end
}
